package cn.le.thread;

import java.util.concurrent.TimeUnit;

/**
 * 后台线程(守护线程)，是指在程序运行的时候在后台提供一种通用服务的线程，并且这种线程并不属于程序中不可或缺的部分，
 * 因此，当所有的非后台线程结束时，程序也就终止了，同时会杀死进程中所有有台线程，反过来说，只要有任何非后台线程还在运行，
 * 程序就不会终止。
 */
public class SimpleDaemons implements Runnable {

    public void run()
    {
        try {

            while (true)
            {
                TimeUnit.MILLISECONDS.sleep(100);
                System.out.println(Thread.currentThread()+" " +this);
            }

        }catch (InterruptedException e)
        {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {

        for (int i = 0; i < 10; i++ )
        {
            Thread thread = new Thread(new SimpleDaemons());
            thread.setDaemon(true);//设置该线程为守护线程,
            thread.start();
        }
        System.out.println("all daemons started");
        try {
            TimeUnit.MILLISECONDS.sleep(50);
        }catch (InterruptedException e)
        {
            e.printStackTrace();
        }

    }

}
